// pages/addDevice/addDevice.js
import * as API from '../api/request_api.js'
  
let device = {}
let deviceNumber = "0"
Page({
  
  /**
   * 页面的初始数据
   */
  data: {
    items: [
      {value: 1, name: '台灯'},
      {value: 2, name: '开关'},
      {value: 3, name: '热水器'},
    ],
    deviceName:"",
    deviceType:0,
    sty:0,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    
  },
  inputDeviceName(e){
    this.setData({
      deviceName: e.detail.value
    })
    console.log(this.data.deviceName);
  },
  radioChange(e) {
    console.log('radi0 value ：', e.detail.value)
    this.setData({
      deviceType:e.detail.value,
    })
  },
  
  button_confirmation(){ //确认信息
    let that = this
    console.log("提交数据 deviceName", this.data.deviceName, "deviceType", this.data.deviceType)
    if(this.data.deviceName.length == 0) {
      API.ShowToast("输入命名", 2000, "error")
      return
    }
    if(this.data.deviceType == 0){
      API.ShowToast("选择设备类型", 2000, "error")
      return
    }
    device["deviceName"] = this.data.deviceName
    device["deviceType"] = this.data.deviceType
    wx.getStorage({
      key: "key",
      success(res) {
        wx.request({ // 发送post请求，添加一个设备
          url: API.myURL_getAddDeviceNum_post,
          method:'POST', // 请求方式POST
          data: {
            "userID":res.data.userID, // 用户输入的账号
            "password":res.data.password, // 用户输入的密码
            "device":device
          },
          header: API.header,
          success (res) {
            console.log(res.data[0])
            deviceNumber = res.data[0].deviceNum
            that.setData({
              sty:1
            })
          },
        })
      }
    })
    console.log("确认信息成功，拿到信息后返回数据")
  },

  connect_device(){ //确认信息
    let that = this
    let userPhone = "12312344321"
    let ssid = "712"
    let password = "000666888"
    let deviceType = "1"
    console.log("测试TCP连接");
    wx.showLoading({
      title: '连接中...',
    })
    const tcp = wx.createTCPSocket()
    tcp.connect({
      //address: "192.168.4.1",
      address: '192.168.0.102',
      port: 6666
    })
    tcp.onConnect(() => {
      setTimeout(function () {
        tcp.write("USER"+userPhone)//延迟后进行的操作
      },100) //delayTime是延迟时间，以毫秒为单位，1000ms=1s
      setTimeout(function () {
        tcp.write("SSID"+ssid)//延迟后进行的操作
      },200) //delayTime是延迟时间，以毫秒为单位，1000ms=1s
      setTimeout(function () {
        tcp.write("PASS"+password)//延迟后进行的操作
      },300) //delayTime是延迟时间，以毫秒为单位，1000ms=1s
      setTimeout(function () {
        tcp.write("TYPE"+deviceType)//延迟后进行的操作
      },400) //delayTime是延迟时间，以毫秒为单位，1000ms=1s
      setTimeout(function () {
        tcp.write("DNUM"+deviceNumber)//延迟后进行的操作
      },500) //delayTime是延迟时间，以毫秒为单位，1000ms=1s  
      setTimeout(function () {
        tcp.write("DONE")//延迟后进行的操作
      },500) //delayTime是延迟时间，以毫秒为单位，1000ms=1s   
    })
    tcp.onMessage((message) => {
      console.log(message.message)
      wx.hideLoading();
      let msgView = new DataView(message.message);
      if(msgView.getUint8(0) == 49 & msgView.getUint8(1) == 50){
        tcp.close()
        console.log("成功！！！")
        that.setData({
          sty:2
        })
        //return true
      }else{
        console.log("成功！！！")
        API.ShowToast("失败！", 2000, "error")
        //return false
      }
    })
    tcp.onError((res) => {
      wx.hideLoading();
      API.ShowToast("tcp.onError", 2000, "error")
      console.log(res)
      return false
    })
  },

  button_connectDevice(){
    let that = this
    wx.startWifi({
      success(res) {
        console.log(res.errMsg, 'wifi初始化成功')
      },
      fail: function(res){
        console.log(res.errMsg, "wifi初始化失败")
      }
    })
    wx.getConnectedWifi({ // 获取当前连接的WiFi名称是不是设备初始化的设置名称
      success (res) {
        console.log("wifi信息：",res,res.wifi.SSID)
        if(res.wifi.SSID == "HOME")// 判断wifi名称
        {
          API.ShowToast("判断wifi名称成功", 2000, "error")
          that.connect_device()
          //if(){ // 讲设备的初始化信息通过tcp直接发送给设备，如果设备成功了，直接返回到主页提示成功
          //}else{ // 如果失败了
          //}
        }else{
          wx.showModal({
            title: '提示',
            content: '请将手机连接到名为HOME的Wifi，密码是123456',
          })
        }
      },
      fail (res) {
        console.log("wifi错误信息：",res)
        wx.showModal({
          title: 'wifi错误信息：',
          content: '请将手机连接到名为HOME的Wifi，密码是123456',
        })
      }
    })
  },

  button_deviceConfirm(){
    console.log("最终的确认")
    wx.getStorage({
      key: "key",
      success(res) {
        wx.request({ // 发送post请求，添加一个设备
          url: API.myURL_addDevice_post,
          method:'POST', // 请求方式POST
          data: {
            "userID":res.data.userID, // 用户输入的账号
            "password":res.data.password, // 用户输入的密码
            "device":device
          },
          header: API.header,
          success (res) {
            console.log(res.data[0])
            console.log("添加设备成功返回主界面")
              // 关闭所有页面，打开到应用内的某个页面
              wx.reLaunch({ // 只能跳转到tabBar配置页面
                url: '/pages/index/index',
              })
          },
          fail (res){
            console.log(res)
          }
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})